#include <iostream>
using namespace std;

int num=100;

// 返回普通值类型
int fun1() {
  int a = 10;
  return a;  
}
// 返回引用类型
int& fun2(){
  //int a = 10;
  // return a; 
  return num; 
}

// 返回指针类型
int* fun3(){
  // 静态局部变量
  static int a = 10;
  // 返回变量地址
  return &a; 
}


int main() {
  // 调用返回普通值类型的函数时，会先创建临时变量t
  // 再将临时变量的之拷贝给res
  // int t =fun1();
  // res = t;
  // int res = fun1();
  // 不会创建临时变量
  // int res = fun2();
  int *res = fun3();
  cout<<"res="<<*res<<endl;
  //cout<<"res="<<res<<endl;
  return 0;
}